package demo1221.pm;

import java.util.HashMap;
import java.util.Map;

/*
Map<K,V>接口中的方法:
1.V put(K key,V value);
HashMap中的put方法(添加方法)的原理.
先求出添加key的hash值.
  a.和之前添加的所有key的hash值进行比较,如果都不相同,直接添加到集合中.
  b.如果和之前录入的所有的key的hash值有一个相同.
     b1:则比较地址值,如果地址值相同,直接不添加到集合中,会把value值替换为新的.旧的返回.
     b2:如果地址值不相同,直接使用equals方法,比较两个对象的内容是否相同,
        不相同,则直接添加到集合中;
        相同,不添加到集合中,会把之前的value值替换为新的,旧的返回;
吗
2.V remove(Object key);
如果存在一个键的映射关系，则将其从此映射中移除（可选操作）。
更确切地讲，如果此映射包含从满足 (key==null ? k==null :key.equals(k))
的键 k 到值 v 的映射关系，则移除该映射关系。
（该映射最多只能包含一个这样的映射关系。）
返回：以前与 key 关联的值；如果没有 key 的映射关系，则返回 null。


 */
public class Demo_01 {
    public static void main(String[] args) {
        Map<Student, String> map = new HashMap<>();
        Student s = new Student();
        map.put(s, "101");
        map.put(s, "102");
        map.put(new Student("103","tom"), "103");
        System.out.println(map);

        String s1 = map.remove(new Student());
        System.out.println(s1);//"102"
        System.out.println(map);
    }
}
